iostat コマンドは、CPUの使用率とI/Oデバイスの使用状況を表示するコマンドです。
iostatはsysstatパッケージに収録されています。「sudo yum install iostat」あるいは「sudo apt-get install iostat」としてインストールできます
iostat [オプション] [更新の間隔 [回数]] |
|
-c | CPU使用率のみを出力する |
-d | デバイス使用率のみを出力する |
-g グループ名 | 最後にグループ名を使って合計を出力する。対象デバイスは「-g TOTAL /dev/sda」のように指定可能。対象デバイスをALLにすると全デバイスの合計となる |
-h | 読みやすい表示形式で出力する(デバイス名の行と統計行の情報の2行に分かれる) |
-j 種類 | 永続的な名前で表示する。種類はID、LABEL、PATH、UUIDが指定可能で、「-j ID /dev/sda」あるいは「-j ID ALL」のように対象のデバイスを指定できる(自動的に「-h」も指定した状態になる) |
-k | KB毎秒で出力する |
-m | MB毎秒で出力する |
-N | デバイスマッパーの名称で表示する LVM(Logical Volume Manager:論理ボリュームマネージャ)を用いた場合のデバイスマッパー名を表示する |
-p デバイス | 表示対象のデバイスを指定する。パーティションごとの情報を出力したい場合は「-p /dev/sda」のように指定するか、または「-p ALL」と指定する。ALLの場合、使用されていないデバイスも含めて全て出力される(「-z」を指定すると使用されていないデバイスは出力されない) |
-t | 計測した時刻を出力する |
-T | 合計のみ出力(「-g」と共に使用) |
-x | 拡張ディスク統計情報を出力する |
-y | 繰り返し表示する際に、最初に表示される“システム起動時からの統計情報(平均と合計)”を省略する |
-z | 表示対象の期間に使用されていないデバイス(入出力がゼロのデバイス)は表示しない |
# iostatLinux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年09月01日 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 5.93 0.04 9.25 15.62 0.00 69.16 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 53.23 1961.41 220.82 588931 66304 dm-0 53.30 1863.61 213.93 559566 64236 dm-1 0.31 7.42 0.00 2228 0 |
項目名 | CPU使用率の内訳 |
%usr | アプリケーション(ユーザーレベル) |
%nice | アプリケーション(ナイス値による優先指定) |
%system | カーネル(システムレベル) |
%iowait | アイドル状態(ディスクI/Oリクエスト待ち) |
%steal | 他の仮想CPU向けのハイパーバイザ処理 |
%idle | アイドル状態(ディスクI/Oリクエスト待ち以外) |
項目名 | デバイス使用状況の内訳 |
tps | 1秒当たりのI/Oリクエスト数(transfers per second) |
kB_read/s | 1秒当たりの読み出し量(KB単位) |
kB_wrtn/s | 1秒当たりの書き込み量(KB単位) |
kB_read | 読み出し量の合計(KB単位) |
kB_wrtn | 書き込み量の合計(KB単位) |
sar コマンドは、CPUやメモリ、ディスクなどの使用率を時間ごとに一覧表示するコマンドです。
sarは、sysstatパッケージに収録されています。「sudo yum install sysstat」あるいは「sudo apt-get install sysstat」としてインストールできます
vmstat は仮想メモリやCPU、ディスクI/Oの統計情報を表示するコマンドです。
vmstatコマンドをそのまま実行すると,現在のプロセス,メモリー,スワップ,デバイス,割り込み,CPUの情報が表示される。
また,「-d」や「-p」オプションを付けるとパーティションやディスクへの読み書き状況などが表示される。「-f」オプションを指定するとシステムが起動してからコマンド実行時までの間に,プロセスを作成した回数が表示される。
vmstat [オプション] [更新の間隔 [回数]] |
|
-a | --active | アクティブ/非アクティブなメモリの量を表示する(カーネル2.5.41以降) |
-d | --disk | ディスクの統計情報を表示する(カーネル2.5.70以降) |
-D | --disk-sum | ディスクの統計情報を1項目1行で表示する(常に1回のみ表示) |
-f | --forks | ブート後のフォーク数を表示する |
-m | --slabs | スラブ情報を表示する(root権限が必要) |
-n | --one-header | 繰り返し表示の際にヘッダを1度だけ表示する(デフォルトでは一定の周期でヘッダを表示する) |
-p パーティション | --partition パーティション | 指定したパーティションの統計を表示する(カーネル2.5.70以降) |
-s | --stats | 1項目1行でメモリの統計情報とイベントカウンタを表示する(常に1回のみ表示) |
-S 単位 | --unit 単位 | 単位をk,K,m,Mで指定する(kは1000、Kは1024、mは1000000、Mは1048576バイト単位) |
-t | --timestamp | タイムスタンプを表示する(オプションなし、「-a」「-d」使用時のみ) |
種類 | 記号 | 説明 |
procs | r | 実行中と実行待ち中のプロセス数の合計 |
b | 割り込み不可能なスリープ状態にあるプロセス数 | |
memory | swpd | 使用中の仮想メモリの量 |
free | 空きメモリの量 | |
buff | バッファとして使用しているメモリの量 | |
cache | キャッシュに使用している量 | |
inact | アクティブではないメモリの量 ※ | |
active | アクティブなメモリの量 ※ | |
swap | si | ディスクからスワップインしているメモリの量 |
so | スワップアウトしている量 | |
io | bi | HDDのようなブロック型デバイスから受け取ったブロック数 |
bo | ブロック型デバイスに送ったブロック数 | |
system | in | 1秒当たりの割り込み回数 |
cs | コンテクストスイッチの回数 | |
cpu | us | カーネルコード以外の実行に使用した時間(ユーザー時間) |
sy | カーネルコードの実行に使用した時間(システム時間) | |
id | 空転していたアイドル時間 | |
wa | I/O待ち時間 | |
st | 仮想環境で実行している際、ホストOSにCPUリソースを割当ててもらえなかった時間の割合 | |
# vmstat |
# vmstat -a |
# vmstat -s |
# vmstat -d |
# vmstat -p /dev/sda1 |
# vmstat 5 |
# vmstat -d 1 10 |
iotop コマンドは、プロセス毎のディスクI/Oを監視するコマンドです。
sarやvmstatはシステム全体のディスクI/Oの状況は確認できますが、プロセス毎の確認はできません。
top コマンドのように I/O 処理が発生しているプロセスをリアルタイムでモニタリングする事が可能です。
iotop [オプション] |
|
-o | --only | I/O処理を実施しているプロセス/スレッドのみ表示 |
-b | --batch | バッチモード |
-n 数値 | --iter=数値 | 終了までのモニタ回数(指定しない場合無限) |
-u ユーザー | --user=ユーザー | 指定したユーザのI/Oだけを表示する |
-d 秒 | --delay=秒 | モニタ間隔を指定(指定しない場合1秒) |
-p PID | --pid=PID | モニタするプロセスのPIDを指定 |
-P | --processes | プロセスのみ表示(スレッドは表示しない) |
-a | --accumulated | I/O帯域幅(バイト/秒)ではなく累積値(バイト)を表示 |
-k | --kilobytes | キロバイト表示 |
-t | --time | タイムスタンプを表示(バッチモード) |
-q | --quiet | ヘッダ表示の抑制(バッチモード) |
-h | --help | ヘルプの表示 |
--version | バージョンの表示 | |
トグルキー | 同じ機能のオプション | 説明 |
r | - | 表示順序を逆にする。左右の矢印キーを押して、表示順序を逆にしたい項目を選択する(選択中の項目は黄色)。項目を選択したらrを押下する。もう一度rを押すと元に戻ります。 |
o | -o, --only | I/O処理を実施しているプロセス/スレッドのみ表示 |
p | -P, --processes | プロセスのみ表示(スレッドは表示しない) |
a | -a, --accumulated | 帯域ではなく累積値の表示 |
q | - | iotop表示終了 |
i | - | プロセス/スレッドの優先度変更 |
ss コマンドは、ネットワーク通信で利用するソケットについての情報などを出力するコマンドです。
ss [オプション] [フィルター] |
|
-n | --numeric | サービス名の名前解決を行わない(ポート番号を表示) |
-r | --resolv | 名前解決を行う |
-a | --all | 接続待ち状態(LISTEN)のソケットと接続待ち状態にないソケットの両方を表示する |
-l | --listening | 接続待ち状態のソケットだけを表示する |
-o | --options | タイマー情報も表示する |
-e | --extended | 詳細情報を表示する |
-m | --memory | 各ソケットのメモリの使用量も表示する |
-p | --processes | ソケットを使用しているプロセスも表示する |
-i | --info | 内部TCPの情報も表示する |
-s | --summary | ソケットの種類ごとに本数を表示する |
-4 | --ipv4 | IPv4に関するソケット情報のみ表示する |
-6 | --ipv6 | IPv6に関するソケット情報のみ表示する |
-0 | --packet | パケットソケットを表示 |
-t | --tcp | TCPソケットを表示 |
-u | --udp | UDPソケットを表示 |
-d | --dccp | DCCPソケットを表示 |
-w | --raw | RAWソケットを表示 |
-x | --unix | UNIXドメインソケットを表示 |
-f | --family=ソケット | 表示するソケットの種類(ファミリー)をunix、inet、inet6、link、netlinkから指定する |
-A | --query=クエリ --socket=クエリ | 指定されたソケット情報を表示する。対象をカンマ区切りで指定する。クエリは all、inet、tcp、udp、raw、unix、packet、netlink、unix_dgram、unix_stream、unix_seqpacket、packet_raw、packet_dgramから選択。 |
-D | --diag=ファイル | RAW情報をファイルに出力する(画面には何も出力しない) |
-F | --filter=ファイル | フィルターの指定をファイルから読み込む |
www.it-shikaku.jp